package top.continew.admin.system.service;

import top.continew.admin.system.model.entity.ExportTaskDO;
import top.continew.admin.system.model.resp.ExportTaskResp;
import top.continew.starter.data.mp.service.IService;

import java.util.List;

/**
 * 导出任务服务接口
 */
public interface ExportTaskService extends IService<ExportTaskDO> {

    /**
     * 创建导出任务
     */
    String createTask(String taskName, Long userId);

    /**
     * 更新任务状态
     */
    void updateTaskStatus(String taskId, String status, Integer progress, String errorMessage);

    /**
     * 完成任务
     */
    void completeTask(String taskId, String filePath, String fileName);

    /**
     * 获取用户的导出任务列表
     */
    List<ExportTaskResp> getUserTasks(Long userId);

    /**
     * 分页获取用户的导出任务列表
     */
    top.continew.starter.extension.crud.model.resp.PageResp<ExportTaskResp> getUserTasksPage(Long userId, top.continew.starter.extension.crud.model.query.PageQuery pageQuery);

    /**
     * 获取任务详情
     */
    ExportTaskResp getTaskDetail(String taskId);

    /**
     * 下载文件
     */
    void downloadFile(String taskId, jakarta.servlet.http.HttpServletResponse response);
}